iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0
AI & Data

看圖說故事,讓 Neo4j 重新詮釋你的資料庫系列 第 14

Neo4j Bloom 自然語言搜尋與自訂樣式

  • 分享至 

  • xImage
  •  

上一篇文章介紹如何用 Neo4j Bloom 簡單的探索資料關係,今天將繼續延伸上次的主題,再介紹其他的搜尋模式,以及視覺樣式的進階設定。

Neo4j Bloom 自然語言搜尋

上次介紹的三種搜尋模式,都有一個主體,就是某個客戶(當然根據需求,您也可以定某個產品、供應商或訂單為主體),接下來要介紹的搜尋模式,並不是以特定的節點當主體,而是搜尋資料的分佈與連結概況。

More than one type of

這個搜尋模式,我覺得有點難定義明白,我們直接看範例如下:

請找出有哪些供應商提供至少兩種產品

Product Supplier Product

想當然這個搜尋結果會有點多,大部分供應商應該會有多種不同產品。我們來做點變化

請找出在瑞典有哪些供應商提供至少兩種產品

Product Supplier country Sweden Product

Neo4j Bloom Search - more than one

找出有哪些供應商至少提供兩項海鮮產品?

Seafood Product Supplier Product Seafood

Neo4j Bloom Search - more than one

找出有哪些客戶購買過 Teatime Chocolate Biscuits 和 Ipoh Coffee 產品(官網範例)

Teatime Chocolate Biscuits Order Customer Order Ipoh Coffee

Neo4j Bloom 以 Cypher 語法做搜尋

如果上述的各種搜尋模式都還無法滿足你的情境,還是可以直接撰寫 Cypher 語言做更彈性的搜尋變化。

首先請點選左上角按鈕開啟選單,並切換到「Search」,再按下「Add Search phrase」即可自訂 Cypher 搜尋。

Neo4j Bloom with Cypher

接著回到 Bloom 的搜尋框輸入剛才 Cypher 語法的名稱即可

Neo4j Bloom with Cypher

以上把 Neo4j Bloom 各種探索資料的方法介紹到這裡,接下來要講的是 Bloom 圖形的客製化顯示,例如:
根據屬性改變節點的顏色與大小、根據屬性改變關係線的粗細、改變節點的 icon。

首先 Double-Click 右邊的圖例,如圖假設我們想修改產品的顯示,點擊 Product 之後會出現設定畫面,這裡可以更改 Product 節點的顏色、大小以及 Icon。如果想根據某屬性數值而更改這些設定,則點選「Rule-based」即可。

Neo4j Bloom Customize Node

同樣的,如果想更改關係線條的顏色、粗細,則切換到 Relations 頁籤後設定,想根據屬性來修改也是選「Rule-based」。

Neo4j Bloom Customize Relation

這部分並不難,只是涉及實際操作與熟練,就給大家自己嘗試囉。這兩篇講 Neo4j Bloom 的文章中,有許多附圖有客製化顏色、icon、線條粗細,是因為我設定以下條件式視覺元素

  • 單位價格超過 30 的產品,以兩倍大顯示,顏色為紫色
  • 單一筆訂單量如果超過 60,則加粗該關係線條

匯出 Neo4j Bloom 的搜尋結果

想要將最後的搜尋結果匯出,可以在空白處按右鍵選擇「Export as CSV」即可。

另外還有一個特殊功能,在 Bloom 圖形畫面中,可以複選多個 Nodes,然後按下 Ctrl/Command + C,這時候會取得 Cypher 語法,可以將之貼在 Neo4j Browser 執行,不過得到的語法會相當累贅如下:

MATCH (a0:Supplier {country: "Sweden", supplierID: "17", address: "Brovallavägen 231", city: "Stockholm", contactName: "Michael Björn", postalCode: "S-123 45", companyName: "Svensk Sjöföda AB", homePage: "NULL", contactTitle: "Sales Representative", phone: "08-123 45 67", fax: "NULL", region: "NULL"})
MATCH (a1:Supplier {country: "Denmark", supplierID: "21", address: "Lyngbysild Fiskebakken 10", city: "Lyngby", contactName: "Niels Petersen", postalCode: "2800", companyName: "Lyngbysild", homePage: "NULL", contactTitle: "Sales Manager", phone: "43844108", fax: "43844115", region: "NULL"})
return a0, a1

以上兩篇是 Neo4j Bloom 的介紹與應用,希望對大家有幫助~

參考來源:
https://neo4j.com/developer/neo4j-bloom/
https://medium.com/neo4j/tips-and-tricks-in-neo4j-bloom-41e4b3b1cc8f


上一篇
Neo4j Bloom 自然語言搜尋
下一篇
Neo4j 資料庫索引與約束
系列文
看圖說故事,讓 Neo4j 重新詮釋你的資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言